package main

import (
	"github.com/gin-gonic/gin"

	"github.com/dahuamao/task-scheduler/config"
	"github.com/dahuamao/task-scheduler/handler"
)

func main() {
	// 初始化数据库连接
	config.InitDB()
	defer config.CloseDB()

	// 设置Gin模式为发布模式
	gin.SetMode(gin.ReleaseMode)

	// 创建Gin引擎
	r := gin.Default()

	// 配置可信代理
	r.SetTrustedProxies([]string{"127.0.0.1"})

	// WebSocket连接（客户端注册）
	r.GET("/ws", func(c *gin.Context) {
		handler.HandleWebSocket(c)
	})

	// 客户端状态查询
	r.GET("/api/clients/status", handler.GetClientStatusAPI)

	// 启动任务调度器
	go handler.Start()

	// 任务相关路由
	taskRoutes := r.Group("/api/tasks")
	{
		taskRoutes.POST("", handler.CreateTask)       // 创建任务
		taskRoutes.GET("", handler.ListTasks)         // 列出任务
		taskRoutes.GET("/:id", handler.GetTask)       // 获取单个任务
		taskRoutes.PUT("/:id", handler.UpdateTask)    // 更新任务
		taskRoutes.DELETE("/:id", handler.DeleteTask) // 删除任务
	}

	// 启动服务
	r.Run(":3001")
}
